Import('env')
Import('options')
env = env.Copy(CPPDEFINES=['USE_DOUBLES', 'QHULL', '_LIB'])

CC = env['CC']
PLATFORM = env['PLATFORM']
if CC in ('cl', 'msvc', 'icc'):
    env.Append(
        CPPDEFINES=['WIN32','NDEBUG', '_WINDOWS', '_LIB'],
        CCFLAGS=['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6'],
    )
elif CC in ('gcc',):
    if PLATFORM == 'darwin':
        env.Append(
            CPPDEFINES=['NDEBUG'],
            CCFLAGS=['-O2','-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc', '-mtune=G4'],
        )
    else:
        env.Append(
            CPPDEFINES=['NDEBUG'],
            CCFLAGS=['-O2'],
        )
else:
    raise 'Unknown compiler'

sourceFiles = [
    'src/DT_C-api.cpp',
    'src/DT_Encounter.cpp',
    'src/DT_Object.cpp',
    'src/DT_RespTable.cpp',
    'src/DT_Scene.cpp',

    'src/convex/DT_Accuracy.cpp',
    'src/convex/DT_Box.cpp',
    'src/convex/DT_Cone.cpp',
    'src/convex/DT_Convex.cpp',
    'src/convex/DT_Cylinder.cpp',
    'src/convex/DT_Facet.cpp',
    'src/convex/DT_LineSegment.cpp',
    'src/convex/DT_PenDepth.cpp',
    'src/convex/DT_Point.cpp',
    'src/convex/DT_Polyhedron.cpp',
    'src/convex/DT_Polytope.cpp',
    'src/convex/DT_Sphere.cpp',
    'src/convex/DT_Triangle.cpp',

    'src/complex/DT_BBoxTree.cpp',
    'src/complex/DT_Complex.cpp',

    'src/broad/BP_C-api.cpp',
    'src/broad/BP_EndpointList.cpp',
    'src/broad/BP_Proxy.cpp',
    'src/broad/BP_Scene.cpp',
]
env.Append(CPPPATH=['include', 'src', 'src/broad', 'src/complex', 'src/convex', '../qhull/include'])
env.Library(target='#$BUILD_DIR/lib/extern_solid', source=sourceFiles)
